package com.wskeee.ec.interfaces
{
	import flash.events.IEventDispatcher;

	public interface IList extends IEventDispatcher
	{
		//---------------------
		//item 操作
		//---------------------
		/**
		 * 添加项
		 * @param item
		 * 
		 */
		function addItem(item:Object):void;
		/**
		 * 添加项至 指定索引 
		 * @param item		
		 * @param index		索引 >=0
		 * 
		 */
		function addItemAt(item:Object,index:int):void;
		
		/**
		 * 删除项 
		 * @param item
		 * 
		 */
		function removeItem(item:Object):void;
		
		/**
		 * 删除指定索引的项 
		 * @param index		索引>=0
		 * 
		 */
		function removeItemAt(index:int):void;
		
		/**
		 * 删除所有项 
		 * 
		 */
		function removeAll():void;
		
		/**
		 * 获取指定索引项数据 
		 * @param index		
		 * @return 
		 * 
		 */
		function getItemAt(index:int):Object;
		
		/**
		 * 获取指定索引项的 cell item 
		 * @param index
		 * @return 
		 * 
		 */
		function getItemRendererAt(index:int):IListCellRenderer;
		
		//-----------------------------------------------------------------
		//  act
		//-----------------------------------------------------------------
		/**
		 * 设置滚动到指定索引 
		 * @param value
		 * 
		 */
		function scrollToIndex(value:int):void;
		
		//---------------------
		//基本属于
		//---------------------
		/**
		 * 设置/获取 label 属性名 
		 * @param value 默认为  "label"
		 * @return 
		 * 
		 */
		function set labelField(value:String):void;
		function get labelField():String;
		
		/**
		 * 设置 list cell render 
		 * @param value
		 * 
		 */
		function set itemRenderer(value:Class):void;
		function get itemRenderer():Class;
		
		/**
		 * 设置数据提交源 
		 * @param value
		 * 
		 */
		function set dataProvider(value:Object):void;
		function get dataProvider():Object;
		
		/**
		 * 当前选择对象  
		 * @return 
		 * 
		 */
		function get selectedItem():Object;
		//function set selectedItem(value:Object):void;
		
		/**
		 * 当前选择好的多个对象 
		 * @return 
		 * 
		 */
		function get selectedItems():Vector.<Object>;
		//function set selectedItems(value:Vector.<Object>):void;
		
		/**
		 * 当前对象索引 
		 * @param value	-1为取消选择
		 * 
		 */
		function set selectedIndex(value:int):void;
		function get selectedIndex():int;
		
		/**
		 * 设置/获取  选择对象索引
		 * @return 
		 * 
		 */
		function get selectedIndexs():Vector.<int>;
		function set selectedIndexs(value:Vector.<int>):void;
		
		/**
		 * 允许选择多个对象 
		 * @param bo
		 * 
		 */
		function set allowMultipleSelection(bo:Boolean):void;
		function get allowMultipleSelection():Boolean;
		
		//---------------------
		//样式
		//---------------------
		/**
		 * 列表 rander item 高
		 * @param value
		 * 
		 */
		function set itemHeight(value:Number):void;
		function get itemHeight():Number;
		
		/**
		 * 默认(正常状态) rander 显示颜色 
		 * @param value
		 * 
		 */
		function set defaultColor(value:Object):void;
		function get defaultColor():Object;
		
		/**
		 * 默认(正常状态) rander 显示颜色 透明度
		 * @param value
		 * 
		 */
		function set defaultAlpha(value:Number):void;
		function get defaultAlpha():Number;
		
		/**
		 * 鼠标移上去 rander 显示颜色 
		 * @param value
		 * 
		 */
		function set rolloverColor(value:Object):void;
		function get rolloverColor():Object;
		
		/**
		 * 鼠标移上去 rander 显示颜色 透明度
		 * @param value
		 * 
		 */
		function set rolloverAlpha(value:Number):void;
		function get rolloverAlpha():Number;
		
		/**
		 * 选择状态 rander 显示颜色 
		 * @param value
		 * 
		 */
		function set selectedColor(value:Object):void;
		function get selectedColor():Object;
		
		/**
		 * 选择状态 rander 显示颜色 透明度
		 * @param value
		 * 
		 */
		function set selectedAlpha(value:Number):void;
		function get selectedAlpha():Number;
	}
}